package com.fowo.api.model.tmp.fba.shipment;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * FBA货件临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpFbaShipmentImportPo {

  /** 货件id */
  @ExcelProperty("货件id")
  @Size(max = 100, message = "货件id长度不能超过100")
  private String shipmentId;

  /** 货件名称 */
  @ExcelProperty("货件名称")
  @Size(max = 500, message = "货件名称长度不能超过500")
  private String shipmentName;

  /** 个人或企业名称 */
  @ExcelProperty("个人或企业名称")
  @Size(max = 100, message = "个人或企业名称长度不能超过100")
  private String name;

  /** 街道地址 */
  @ExcelProperty("街道地址")
  @Size(max = 50, message = "街道地址长度不能超过50")
  private String addressLine;

  /** 区或县 */
  @ExcelProperty("区或县")
  @Size(max = 50, message = "区或县长度不能超过50")
  private String districtOrCounty;

  /** 城市 */
  @ExcelProperty("城市")
  @Size(max = 50, message = "城市长度不能超过50")
  private String city;

  /** 州或省的代码 */
  @ExcelProperty("州或省的代码")
  @Size(max = 50, message = "州或省的代码长度不能超过50")
  private String stateOrProvinceCode;

  /** 国家代码 */
  @ExcelProperty("国家代码")
  @Size(max = 50, message = "国家代码长度不能超过50")
  private String countryCode;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String postalCode;

  /** 亚马逊配送中心 */
  @ExcelProperty("亚马逊配送中心")
  @Size(max = 500, message = "亚马逊配送中心长度不能超过500")
  private String destinationFulfillmentCenterId;

  /** 订单状态 */
  @ExcelProperty("订单状态")
  @Size(max = 50, message = "订单状态长度不能超过50")
  private String shipmentStatus;

  /** 标签类型 */
  @ExcelProperty("标签类型")
  @Size(max = 50, message = "标签类型长度不能超过50")
  private String labelPrepType;

  /** 是否原装发货 */
  @ExcelProperty("是否原装发货")
  @BooleanString(message = "是否原装发货格式不正确，请使用“是”，“否”")
  private String areCasesRequired;

  /** 到达日期 */
  @ExcelProperty("到达日期")
  @DateTimeString(message = "到达日期不是有效的时间日期格式")
  private String confirmedNeedByDate;

  /** 箱内信息方式 */
  @ExcelProperty("箱内信息方式")
  @Size(max = 50, message = "箱内信息方式长度不能超过50")
  private String boxContentsSource;

  /** 箱子总数 */
  @ExcelProperty("箱子总数")
  @IntegerString(message = "箱子总数数值格式不正确", label = "箱子总数")
  private String totalUnits;

  /** 单个箱子人工费 */
  @ExcelProperty("单个箱子人工费")
  @DecimalString(
    message = "单个箱子人工费小数格式不正确",
    label = "单个箱子人工费"
  )
  private String feePerUnit;

  /** 总人工费 */
  @ExcelProperty("总人工费")
  @DecimalString(message = "总人工费小数格式不正确", label = "总人工费")
  private String totalFee;

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺")
  private String sid;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String country;
}
